2004-10-21 Matthias Clasen <mclasen@redhat.com>
+ * gtk/gtkiconcache.c: Include io.h on windows. (#156075,
+ Kazuki IWAMOTO)
+ (_gtk_icon_cache_new_for_path): Don't use MAP_FAILED if we don't
+ have mmap.
+
* gtk/gtkicontheme.c (gtk_icon_theme_has_icon): Implement for
cached themes.
2004-10-21 Matthias Clasen <mclasen@redhat.com>
+ * gtk/gtkiconcache.c: Include io.h on windows. (#156075,
+ Kazuki IWAMOTO)
+ (_gtk_icon_cache_new_for_path): Don't use MAP_FAILED if we don't
+ have mmap.
+
* gtk/gtkicontheme.c (gtk_icon_theme_has_icon): Implement for
cached themes.
2004-10-21 Matthias Clasen <mclasen@redhat.com>
+ * gtk/gtkiconcache.c: Include io.h on windows. (#156075,
+ Kazuki IWAMOTO)
+ (_gtk_icon_cache_new_for_path): Don't use MAP_FAILED if we don't
+ have mmap.
+
* gtk/gtkicontheme.c (gtk_icon_theme_has_icon): Implement for
cached themes.
2004-10-21 Matthias Clasen <mclasen@redhat.com>
+ * gtk/gtkiconcache.c: Include io.h on windows. (#156075,
+ Kazuki IWAMOTO)
+ (_gtk_icon_cache_new_for_path): Don't use MAP_FAILED if we don't
+ have mmap.
+
* gtk/gtkicontheme.c (gtk_icon_theme_has_icon): Implement for
cached themes.
#ifdef HAVE_MMAP
#include <sys/mman.h>
#endif
-
+#ifdef G_OS_WIN32
+#include <io.h>
+#endif
#include <sys/types.h>
#include <sys/stat.h>
#ifdef HAVE_UNISTD_H
GtkIconCache *
_gtk_icon_cache_new_for_path (const gchar *path)
{
+ GtkIconCache *cache = NULL;
+#ifdef HAVE_MMAP
gchar *cache_filename;
gint fd;
struct stat st;
struct stat path_st;
- gchar *buffer = MAP_FAILED;
- GtkIconCache *cache = NULL;
+ gchar *buffer;
if (g_getenv ("GTK_NO_ICON_CACHE"))
return NULL;
goto done;
}
-#ifdef HAVE_MMAP
buffer = (gchar *) mmap (NULL, st.st_size, PROT_READ, MAP_SHARED, fd, 0);
-#endif
if (buffer == MAP_FAILED)
goto done;
if (GET_UINT16 (buffer, 0) != MAJOR_VERSION ||
GET_UINT16 (buffer, 2) != MINOR_VERSION)
{
-#ifdef HAVE_MMAP
munmap (buffer, st.st_size);
-#endif
GTK_NOTE (ICONTHEME,
g_print ("wrong cache version\n"));
goto done;
g_free (cache_filename);
close (fd);
+#endif /* HAVE_MMAP */
+
return cache;
}